<?php

namespace Product\Model\Entity;

class Account {

	protected $_id;
	protected $_annualrevenue;
	protected $_description;
	protected $_employees;
	protected $_latestactivitydatetime;
	protected $_name;
	protected $_officephone;
	protected $_officefax;
	protected $_website;
	protected $_ownedsecurable_id;
	protected $_account_id;
	protected $_billing_address_id;
	protected $_industry_customfield_id;
	protected $_primaryemail_email_id;
	protected $_secondaryemail_email_id;
	protected $_shippingaddress_address_id;
	protected $_type_customfield_id;


	public function __construct(array $options = null) {
		if (is_array($options)) {
			$this->setOptions($options);
		}
	}

	public function __set($name, $value) {
		$method = 'set' . $name;
		if (!method_exists($this, $method)) {
			throw new Exception('Invalid Method');
		}
		$this->$method($value);
	}

	public function __get($name) {
		$method = 'get' . $name;
		if (!method_exists($this, $method)) {
			throw new Exception('Invalid Method');
		}
		return $this->$method();
	}

	public function setOptions(array $options) {
		$methods = get_class_methods($this);
		foreach ($options as $key => $value) {
			$method = 'set' . ucfirst($key);
			if (in_array($method, $methods)) {
				$this->$method($value);
			}
		}
		return $this;
	}

	public function getId() {
		return $this->_id;
	}

	public function setId($id) {
		$this->_id = $id;
		return $this;
	}

	public function getAnnualRevenue() {
		return $this->_annualrevenue;
	}

	public function setAnnualRevenue($annualrevenue) {
		$this->_annualrevenue = $annualrevenue;
		return $this;
	}

	public function getDescription() {
		return $this->_description;
	}

	public function setDescription($description) {
		$this->_description = $description;
		return $this;
	}

	public function getEmployees() {
		return $this->_employees;
	}

	public function setEmployees($employees) {
		$this->_employees = $employees;
		return $this;
	}

	public function getLatestActivityDateTime() {
		return $this->_latestactivitydatetime;
	}

	public function setLatestActivityDateTime($latestactivitydatetime) {
		$this->_latestactivitydatetime = $latestactivitydatetime;
		return $this;
	}

	public function getName() {
		return $this->_name;
	}

	public function setName($name) {
		$this->_name = $name;
		return $this;
	}

	public function getOfficePhone() {
		return $this->_officephone;
	}

	public function setOfficePhone($officephone) {
		$this->_officephone = $officephone;
		return $this;
	}

	public function getOfficeFax() {
		return $this->_officefax;
	}

	public function setOfficeFax($officefax) {
		$this->_officefax = $officefax;
		return $this;
	}

	public function getWebsite() {
		return $this->_website;
	}

	public function setWebsite($website) {
		$this->_website = $website;
		return $this;
	}

	public function getOwnedSecurable_Id() {
		return $this->_ownedsecurable_id;
	}

	public function setOwnedSecurable_Id($ownedsecurable_id) {
		$this->_ownedsecurable_id = $ownedsecurable_id;
		return $this;
	}

	public function getAccount_Id() {
		return $this->_account_id;
	}

	public function setAccount_Id($account_id) {
		$this->_account_id = $account_id;
		return $this;
	}

	public function getBilling_Address_Id() {
		return $this->_billing_address_id;
	}

	public function setBilling_Address_Id($billing_address_id) {
		$this->_billing_address_id = $billing_address_id;
		return $this;
	}

	public function getIndustry_Customfield_Id() {
		return $this->_industry_customfield_id;
	}

	public function setIndustry_Customfield_Id($industry_customfield_id) {
		$this->_industry_customfield_id = $industry_customfield_id;
		return $this;
	}

	public function getPrimaryEmail_Email_Id() {
		return $this->_primaryemail_email_id;
	}

	public function setPrimaryEmail_Email_Id($primaryemail_email_id) {
		$this->_primaryemail_email_id = $primaryemail_email_id;
		return $this;
	}

	public function getSecondaryEmail_Email_Id() {
		return $this->_secondaryemail_email_id;
	}

	public function setSecondaryEmail_Email_Id($secondaryemail_email_id) {
		$this->_secondaryemail_email_id = $secondaryemail_email_id;
		return $this;
	}

	public function getShippingAddress_Address_Id() {
		return $this->_shippingaddress_address_id;
	}

	public function setShippingAddress_Address_Id($shippingaddress_address_id) {
		$this->_shippingaddress_address_id = $shippingaddress_address_id;
		return $this;
	}

	public function getType_Customfield_Id() {
		return $this->_type_customfield_id;
	}

	public function setType_Customfield_Id($type_customfield_id) {
		$this->_type_customfield_id = $type_customfield_id;
		return $this;
	}
}
?>